/*************************************************************************************************************************
Multi-Include-Prevent Segment
**************************************************************************************************************************/
#ifndef IF_GPIOABST_H_
#define IF_GPIOABST_H_

/*************************************************************************************************************************
Include File Segment
**************************************************************************************************************************/
#include "IF_GxwLib.h"
#include "IF_GPIO.h"

/*************************************************************************************************************************
Type Segment
**************************************************************************************************************************/ 

/*************************************************************************************************************************
Define Segment
**************************************************************************************************************************/

/*-------------------------------- SCU I/O输入 ------------------------------*/

/* HAL1 PC9 */
#define PHOTO_INTER_1_PORT		        GPIO_PORT_C
#define PHOTO_INTER_1_PIN			    9
#define PHOTO_INTER_1_MODE		        FL_GPIO_MODE_INPUT
#define PHOTO_INTER_1_NO_PULL		    GPIO_PULL_DISABLE
#define PHOTO_INTER_1_INIT_LV		    1

/* HAL2 PE0 */
#define PHOTO_INTER_2_PORT		        GPIO_PORT_E
#define PHOTO_INTER_2_PIN			    0
#define PHOTO_INTER_2_MODE		        FL_GPIO_MODE_INPUT
#define PHOTO_INTER_2_NO_PULL		    GPIO_PULL_DISABLE
#define PHOTO_INTER_2_INIT_LV		    1

/* HAL13 PE1 */
#define PHOTO_INTER_3_PORT		        GPIO_PORT_E
#define PHOTO_INTER_3_PIN			    1
#define PHOTO_INTER_3_MODE		        FL_GPIO_MODE_INPUT
#define PHOTO_INTER_3_NO_PULL		    GPIO_PULL_DISABLE
#define PHOTO_INTER_3_INIT_LV		    1

/* HAL4 PE2 */
#define PHOTO_INTER_4_PORT		        GPIO_PORT_E
#define PHOTO_INTER_4_PIN			    2
#define PHOTO_INTER_4_MODE		        FL_GPIO_MODE_INPUT
#define PHOTO_INTER_4_NO_PULL		    GPIO_PULL_DISABLE
#define PHOTO_INTER_4_INIT_LV		    1

/* IG检测 IG:   PH15 */
#define IG_PORT	 	         	GPIO_PORT_H
#define IG_PORT_PIN		     	15
#define IG_PORT_MODE		   	FL_GPIO_MODE_INPUT
#define IG_PORT_NO_PULL	   		GPIO_PULL_DISABLE
#define IG_PORT_INIT_LV			0

/* KL15中断线配置 PH15 */
#define KL15_EXTI_PORT          GPIOH
#define KL15_EXTI_PIN           FL_GPIO_PIN_15


/* P按键 P_SW: PE3 */
#define PARK_SW_PORT	 		GPIO_PORT_E
#define PARK_SW_PIN				3
#define PARK_SW_MODE			FL_GPIO_MODE_INPUT
#define PARK_SW_NO_PULL			GPIO_PULL_DISABLE
#define PARK_SW_INIT_LV			1


/*-------------------------------- SCU ADC ------------------------------*/
/*UBD12V POWER: PA0,ADC_IN23*/
#define UBD_VOLT_AN_PORT		GPIO_PORT_A
#define UBD_VOLT_AN_PIN			0
#define UBD_VOLT_AN_MODE		FL_GPIO_MODE_ANALOG
#define UBD_VOLT_AN_NO_PULL		GPIO_PULL_DISABLE
#define UBD_VOLT_AN_INIT_LV		0
#define UBD_VOLT_AIN			FL_ADC_EXTERNAL_CH23

/* VDD_5V PC10:ADC_IN28 */
#define VDD_5V_AN_PORT		    GPIO_PORT_C
#define VDD_5V_AN_PIN			10
#define VDD_5V_AN_MODE		    FL_GPIO_MODE_ANALOG
#define VDD_5V_AN_NO_PULL		GPIO_PULL_DISABLE
#define VDD_5V_AN_INIT_LV		0
#define VDD_5V_AIN			    FL_ADC_EXTERNAL_CH28

/*P按键 Psw_AD: PC8:ADC_IN26*/
#define PARK_AN_PORT			GPIO_PORT_C
#define PARK_AN_PIN				8
#define PARK_AN_MODE			FL_GPIO_MODE_ANALOG
#define PARK_AN_NO_PULL			GPIO_PULL_DISABLE
#define PARK_AN_INIT_LV		    0
#define PARK_AIN			    FL_ADC_EXTERNAL_CH26


/*-------------------------------- SCU I/O输出 ------------------------------*/
/* CAN使能         CAN_EN:   PG2 */
#define CAN_EN_PORT		    	GPIO_PORT_G
#define CAN_EN_PIN			  	2
#define CAN_EN_MODE		    	FL_GPIO_MODE_OUTPUT
#define CAN_EN_NO_PULL			GPIO_PULL_DISABLE
#define CAN_EN_EN_INIT_LV		1

/* 电源AD使能输出  PWR_AD_EN: PG1*/
#define PWR_AD_EN_PORT			GPIO_PORT_G
#define PWR_AD_EN_PIN			1
#define PWR_AD_EN_MODE			FL_GPIO_MODE_OUTPUT
#define PWR_AD_EN_NO_PULL		GPIO_PULL_DISABLE
#define PWR_AD_EN_INIT_LV		0

/* 霍尔电源使能输出  HAL_EN:  PG11*/
#define PWR_EN_PORT		    	GPIO_PORT_G
#define PWR_EN_PIN			  	11
#define PWR_EN_MODE		    	FL_GPIO_MODE_OUTPUT
#define PWR_EN_NO_PULL			GPIO_PULL_DISABLE
#define PWR_EN_INIT_LV			0
  
/*************************************************************************************************************************
Enum Segment
**************************************************************************************************************************/

/*************************************************************************************************************************
Union Segment
**************************************************************************************************************************/

/*************************************************************************************************************************
Structure Segment
**************************************************************************************************************************/
typedef struct
{
    uint8 PhoelecSwPwrCtrl:1;
    uint8 UbdPwrAdcDetCtrl:1;
	uint8 CanPwrCtrl:1;
    uint8 Res:5;    
}GpioAbsCtrlSta_ST;


/*************************************************************************************************************************
Function Declare Segment
**************************************************************************************************************************/
extern void IF_GpioAbst_Init(void);
extern void IF_GpioAbs_HallPwrCtrl(uint8 blState);
extern void IF_GpioAbs_UbdPwrAdcDetCtrl(uint8 blState);
extern void IF_GpioAbs_CanPwrCtrl(uint8 blState);
extern uint8_t IF_GpioAbs_GetIgState(void);

#endif
